package com.moyz.adi.common.util;

import com.moyz.adi.common.entity.AiModel;
import com.moyz.adi.common.vo.RequestRateLimit;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 本地缓存类，用于在应用程序运行期间保存配置信息和其他需要快速访问的数据。
 */
public class LocalCache {

    /**
     * CONFIGS是一个线程安全的Map，用来存储各种配置项。
     * 键是配置项的名字，值是配置项的内容。
     */
    public static final Map<String, String> CONFIGS = new ConcurrentHashMap<>();

    /**
     * TEXT_RATE_LIMIT_CONFIG定义了文本请求的速率限制规则。
     * 这个对象应该包含关于允许的最大请求数、时间窗口等的信息。
     */
    public static RequestRateLimit TEXT_RATE_LIMIT_CONFIG;

    /**
     * IMAGE_RATE_LIMIT_CONFIG定义了图片请求的速率限制规则。
     * 和TEXT_RATE_LIMIT_CONFIG类似，但专门用于图像请求。
     */
    public static RequestRateLimit IMAGE_RATE_LIMIT_CONFIG;

    /**
     * MODEL_ID_TO_OBJ是一个线程安全的映射，将AI模型的ID映射到具体的AiModel实例。
     * 这样可以通过ID快速查找对应的AI模型对象。
     */
    public static Map<Long, AiModel> MODEL_ID_TO_OBJ = new ConcurrentHashMap<>();
}
